package com.yida.gwj.deposit.mapper;

import com.yida.gwj.deposit.domain.GwjDepositBusinessOwner;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 业务业主信息（缴存业务管理模块）Mapper接口
 *
 * @author 缴存业务管理模块
 * @date 2023-01-11
 */
public interface GwjDepositBusinessOwnerMapper {
	/**
	 * 查询业务业主信息（缴存业务管理模块）
	 *
	 * @param bizOwnerId 业务业主信息（缴存业务管理模块）主键
	 * @return 业务业主信息（缴存业务管理模块）
	 */
	public GwjDepositBusinessOwner selectGwjDepositBusinessOwnerByBizOwnerId(Long bizOwnerId);

	/**
	 * 查询业务业主信息（缴存业务管理模块）列表
	 *
	 * @param gwjDepositBusinessOwner 业务业主信息（缴存业务管理模块）
	 * @return 业务业主信息（缴存业务管理模块）集合
	 */
	public List<GwjDepositBusinessOwner> selectGwjDepositBusinessOwnerList(GwjDepositBusinessOwner gwjDepositBusinessOwner);

	/**
	 * 新增业务业主信息（缴存业务管理模块）
	 *
	 * @param gwjDepositBusinessOwner 业务业主信息（缴存业务管理模块）
	 * @return 结果
	 */
	public int insertGwjDepositBusinessOwner(GwjDepositBusinessOwner gwjDepositBusinessOwner);

	/**
	 * 新增业务业主信息（缴存业务管理模块）
	 *
	 * @param gwjDepositBusinessOwners 业务业主信息（缴存业务管理模块）
	 * @return 结果
	 */
	public int insertBatchGwjDepositBusinessOwner(@Param("gwjDepositBusinessOwners") List<GwjDepositBusinessOwner> gwjDepositBusinessOwners);

	/**
	 * 修改业务业主信息（缴存业务管理模块）
	 *
	 * @param gwjDepositBusinessOwner 业务业主信息（缴存业务管理模块）
	 * @return 结果
	 */
	public int updateGwjDepositBusinessOwner(GwjDepositBusinessOwner gwjDepositBusinessOwner);

	/**
	 * 删除业务业主信息（缴存业务管理模块）
	 *
	 * @param bizOwnerId 业务业主信息（缴存业务管理模块）主键
	 * @return 结果
	 */
	public int deleteGwjDepositBusinessOwnerByBizOwnerId(Long bizOwnerId);

	/**
	 * 删除业务业主信息（缴存业务管理模块）信息
	 *
	 * @param bizId     业务ID
	 * @param houseCodes 房屋标识码
	 * @return 结果
	 */
	public int deleteGwjDepositBusinessOwnerByBizIdAndHouseCodes(@Param("bizId") Long bizId, @Param("houseCodes") String[] houseCodes);

	/**
	 * 批量删除业务业主信息（缴存业务管理模块）
	 *
	 * @param bizOwnerIds 需要删除的数据主键集合
	 * @return 结果
	 */
	public int deleteGwjDepositBusinessOwnerByBizOwnerIds(Long[] bizOwnerIds);

	/**
	 * 查询业务业主信息（缴存业务管理模块）列表
	 *
	 * @param gwjDepositBusinessOwner 业务业主信息（缴存业务管理模块）
	 * @return 业务业主信息（缴存业务管理模块）集合
	 */
	GwjDepositBusinessOwner selectGwjDepositBusinessOwner(GwjDepositBusinessOwner gwjDepositBusinessOwner);

	/**
	 * 根据业务ID删除业务业主信息（缴存业务管理模块）
	 *
	 * @param bizId 业务ID
	 * @return 结果
	 */
	int deleteGwjDepositBusinessOwnerByBizId(Long bizId);

	boolean saveBatch(@Param("owners") List<GwjDepositBusinessOwner> depositBusinessOwners);

}
